#!/bin/bash

# 设置颜色
GREEN='\033[0;32m'
RED='\033[0;31m'
NC='\033[0m'

# 设置变量
BACKUP_DIR="backups"
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
BACKUP_NAME="ollama_chat_backup_$TIMESTAMP"

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份文件列表
FILES_TO_BACKUP=(
    "chat_sessions"
    "logs"
    ".env"
    "config.json"
)

echo "开始备份..."

# 创建临时目录
TEMP_DIR=$(mktemp -d)
mkdir -p "$TEMP_DIR/$BACKUP_NAME"

# 复制文件
for item in "${FILES_TO_BACKUP[@]}"; do
    if [ -e "$item" ]; then
        cp -r "$item" "$TEMP_DIR/$BACKUP_NAME/"
        echo "已备份: $item"
    else
        echo -e "${RED}警告: $item 不存在，已跳过${NC}"
    fi
done

# 创建压缩文件
cd "$TEMP_DIR"
tar -czf "$BACKUP_NAME.tar.gz" "$BACKUP_NAME"
mv "$BACKUP_NAME.tar.gz" "../$BACKUP_DIR/"

# 清理临时文件
cd ..
rm -rf "$TEMP_DIR"

echo -e "${GREEN}备份完成！${NC}"
echo "备份文件: $BACKUP_DIR/$BACKUP_NAME.tar.gz"

# 清理旧备份（保留最近5个）
cd $BACKUP_DIR
ls -t *.tar.gz | tail -n +6 | xargs -r rm
echo "已清理旧备份，保留最近5个备份文件" 